precision mediump float;
uniform float u_time;
uniform vec2  u_mouse;
uniform vec2  u_resolution;

void main(void){
    vec2 p = (gl_FragCoord.xy - 0.5 * u_resolution) / min(u_resolution.x, u_resolution.y);
    
    float r = length(vec2(p.x + sin(u_time), p.y));
    float y = 0.2 * asin(sin(4.0 * p.x));
    
    // 使用更合理的参数
    float wave = exp(-abs(p.y - y) / 0.1);  // 增大分母
    float color = wave - r * 2.0;           // 增强r的影响
    
    // 限制颜色值
    color = clamp(color, 0.0, 1.0);
    
    gl_FragColor = vec4(vec3(color), 1.0);
}